package handlers

import (
	"ticket/internal/db"
	"ticket/internal/db/model"
	"ticket/internal/schemas"

	"github.com/gin-gonic/gin"
	"github.com/pkg/errors"
)

type TaskLogHandler struct{}

func RegisterTaskLogRouter(group *gin.RouterGroup) {
	service := &TaskLogHandler{}
	group.GET("/list", service.List)
}

// List godoc
// @Summary 获取任务日志列表
// @Description 获取任务日志列表
// @Tags 任务日志
// @ID /task_log/list
// @Accept json
// @Produce json
// @Param task_id query uint true "任务id"
// @Success 200 {object} schemas.Response{data=[]model.TaskLog} "任务日志列表获取成功"
// @Router /task_log/list [get]
func (h *TaskLogHandler) List(ctx *gin.Context) {
	taskID, ok := ctx.Get("task_id")
	if !ok {
		schemas.ResponseError(ctx, schemas.TaskParamInvalid, errors.New("任务id不存在"))
		return
	}
	taskLog := &model.TaskLog{}
	taskLogs, err := taskLog.List(db.GormDB, taskID)
	if err != nil {
		schemas.ResponseError(ctx, schemas.TaskParamInvalid, err)
		return
	}
	schemas.ResponseSuccess(ctx, taskLogs)
}
